%% Intro.tex - Introduction
%% Created by Robert Heller on Thu Mar 12 20:23:34 1992
%%
%% ------------------------------------------------------------------
%% Home Libarian by Deepwoods Software
%% ------------------------------------------------------------------
%% Modification History:
%% ------------------------------------------------------------------
%% Contents:
%% ------------------------------------------------------------------
%% 
%% 
%% Copyright (c) 1991,1992 by Robert heller (D/B/A Deepwoods Software)
%%        All Rights Reserved
%% 
%%
\chapter{Introduction.}
\label{Intro}

\section{Basic Terminology}

The \thesystem\ package works over files that are ``Card Catalog Data
Bases'' which contain a number of ``cards''.

\subsection{What is a Card Catalog Data Base?}

A Card Catalog Data Base file contains a collection of
``cards''\index{card@{\bf card}|bold} that describe items in your
library, such as books, magizines, records, and tapes.  These cards are
indexed with four indices as shown in Table~\ref{tab:cardindex}.  Each
index uses 35 character strings as keys.  The keys are always compared
in a case-insensitive fashion.  That is, {\tt "The Door Into Summer"}
is the same as {\tt "THE DOOR INTO SUMMER"}.  Internally, the keys are
converted to all uppercase letters.  The {\tt id} index indexes to the
card records directly.  The other three indices index to lists of {\tt
ids}, and thus index to the cards {\em indirectly}, as shown in
Figure~\ref{fig:dbfile}.\index{card catalog db@{\bf card catalog db}|bold}
\ccindices
\ccdbfig
\subsection{What is a ``card''?}
\index{card@{\bf card}!description|(}

A card has a number of fields as shown in Table~\ref{tab:cardfields}.
\cardfields
The \verb+id+ field could be an ISBN number, a LC call number, a
Deuy-decimal call number, or any other unique identification code. The
\verb+type+ field must be one of the types listed in Table~\ref{tab:cardtypes}.
\cardtypes
The \verb+author+ and \verb+title+ fields are used for the author and
title cross-references.
\index{card@{\bf card}!description|)}

\section{Common GUI Definitions.}
\index{gui@{{\bf GUI} (Graphical User Interface)}|(}
\label{sec:GUI}
\subsection{Keyboard Defin1tions.}

Both the {\tt EditLibr} and {\tt Librarian} programs use a
terminal-based ``Graphical User Interface'' (GUI).  This is a very
simple interface that works on any video display terminal
(VDT)\footnote{If you are using OSK, you need to set the TERM
environment variable to the terminal type.  Under MS-DOS, the terminal
type is presumed to be an ANSI terminal and you need to be running
ANSI.SYS or something simular.}. The GUI routines use cursor positioning
and reverse video or standout mode and do ``raw'' terminal input (single
character input with normal operating system input editing disabled),
much like a screen-based text editor such as Emacs.  

The input handling code expects a terminal that has arrow keys on its
keyboard, but will work with terminals whose keyboards do not have
arrow keys, by accepting ``generic'' control characters instead.  These
``generic'' control characters were taken from Emacs's positioning
bindings.  The common (used in all screens, except as noted) key
bindings are listed in Table~\ref{tab:keybind}. 

\keybinds
\index{gui@{{\bf GUI} (Graphical User Interface)}|)}

\section{How This Manual is Organized}

This manual is organized by functions -- each chapter describes the
program(s) that perform a particular function.

\subsection{Creating and Modifing a Data Base.}

A data base file can be created and modified with the
EditLibr program, which is described in
chapter~\ref{Editor}.  This program creates and modifies card catalog
data bases.

\subsection{Searching a Data Base.}

The Librarian program, which is
described in chapter~\ref{Librarian}, is a program meant to be used to
search card catalog data bases.

\subsection{Getting Hard Copy of a Data Base.}

A ``hard copy'' of the data base can be created with the
PrintCards program which is
described in chapter~\ref{PrintCards}.  This program is used to
generate either $3{\tt x}5$ or $5{\tt x}8$ cards.  These cards are much
like old-fashioned paper card catalogs.

The PrintLabels program, which is
described in chapter~\ref{PrintLabels}, can be used to print labels or
generate any other sort of hard copy or any sort of text file
output from a card catalog data base.

\subsection{Moving Data Bases Across Systems.}

Appendix~\ref{AsciiConv} is describes a pair of programs to convert
a data base file from its normal binary format to a readily
transportable ASCII text file format.

\subsection{Licensing and Registation.}

Appendix~\ref{License} contains the licensing information for this
package.  Appendix~\ref{Registration} talks about Shareware
Registation. Appendix~\ref{RegForm}
contains a Shareware Registation form for this package.

